#ifndef _OC_GRIB_DEF_H__
#define _OC_GRIB_DEF_H__

#ifdef _WIN32
#ifndef OCGrib_EXPORTS
#define _GribExport  __declspec(dllimport)
#else
#define _GribExport  __declspec(dllexport)
#endif
#else
#define _GribExport
#endif

#include "OCMain/StringUtil.h"
#include "OCMain/StringConverter.h"

namespace OCPP
{
	class GribReader;
	class GribWrapper;
	using GribWrapperPtr = std::shared_ptr<GribWrapper>;

	class GribSyncFile;
	using GribSyncFilePtr = std::shared_ptr<GribSyncFile>;
	using GribSyncFileWeakPtr = std::weak_ptr<GribSyncFile>;

	class GribOutput;
	class GribTime;
	class InventoryEx;

	class GribVariable;
	using GribVariablePtr = std::shared_ptr<GribVariable>;
	using VariableMap = std::map<String, GribVariablePtr>;

	struct VarData
	{
		DoubleVector	dv;
		float			lon1;
		float			lat1;
		float			lon2;
		float			lat2;
		int				Nx;
		int				Ny;
	};
}


#endif // !_OC_GRIB_DEF_H__
